Multi-Class Image Classification Deep Learning Model for ASL Alphabet Images Using TensorFlow Take 1

David Lowe

August 16, 2021

Template Credit: Adapted from a template made available by Dr. Jason Brownlee of Machine Learning Mastery. [https://machinelearningmastery.com/]

SUMMARY: This project aims to construct a predictive model using a TensorFlow convolutional neural network (CNN) and document the end-to-end steps using a template. The Kaggle ASL Alphabet Images dataset is a multi-class classification situation where we attempt to predict one of several (more than two) possible outcomes.

INTRODUCTION: The data set is a collection of alphabets from the American Sign Language, separated into 29 folders representing the various classes. The training data set contains 87,000 images which are 200x200 pixels. There are 29 classes, of which 26 are for the letters A-Z and three labels for SPACE, DELETE, and NOTHING. The test data set contains only 28 images to encourage the use of real-world test images.

In this Take1 iteration, we will construct a CNN model based on the InceptionV3 architecture to predict the ASL alphabet letters based on the available images.

ANALYSIS: In this Take1 iteration, the InceptionV3 model's performance achieved an accuracy score of 99.69% after ten epochs using the training dataset. The same model processed the validation dataset with an accuracy measurement of 98.41%. Finally, the final model processed the test dataset with an accuracy score of 100%.

CONCLUSION: In this iteration, the InceptionV3-based CNN model appeared to be suitable for modeling this dataset. We should consider experimenting with TensorFlow for further modeling.

Dataset Used: Kaggle ASL Alphabet Images

Dataset ML Model: Multi-class image classification with numerical attributes

Dataset Reference: https://www.kaggle.com/grassknoted/asl-alphabet

One potential source of performance benchmarks: https://www.kaggle.com/grassknoted/asl-alphabet/code

A deep-learning image classification project generally can be broken down into five major tasks:

  1. Prepare Environment
  2. Load and Prepare Images
  3. Define and Train Models
  4. Evaluate and Optimize Models
  5. Finalize Model and Make Predictions

Task 1 - Prepare Environment

1.a) Load libraries and modules

1.b) Set up the controlling parameters and functions

Task 2 - Load and Prepare Images

Task 3 - Define and Train Models

Task 4 - Evaluate and Optimize Models

Task 5 - Finalize Model and Make Predictions